1. Field of the Invention
The present invention relates to computer implemented supervisory control and data acquisition systems (SCADA), and more particularly, to SCADA systems providing for personalized, distributed, portable real time control and data acquisition environments capable of integrating with existing legacy applications.
Real Time Systems
Real-time systems are necessary where there is a need to guarantee real-time response to achieve a required quality of service of various underlying devices, communications networks, operating systems, middleware components and application components. Thus, real-time systems are widely applied to diverse applications domains such as manufacturing, facilities management, power systems management, financial analysis systems, and telecommunications.
By definition, a real-time system provides a result in response to an event in a time scale that is adequate to meet the quality of service and performance needs of the application. Certain situations can be time critical in which case they require a hard real-time system, in other words, a hardware based system providing for hardware level integration of the various levels of control, monitoring, and communications systems. For a hard real-time system, the validity of the returned results depends on its correctness as well as its timeliness.
The complexity of real-time systems arises from the need to respond to concurrent events occurring within a single application (or within multiple applications) at the same time. Also, a real-time system must provide some way of managing configuration management, fault management, static and dynamic scheduling, and fault tolerance. However, some applications may be hard real-time applications and others soft real-time applications. This results in increased complexity in managing and correlating data and information generated by the different systems into a single coherent system model.
In addition, there is a need to guarantee end-to-end quality of service to every application, regardless of its implementation, communications protocols, or other integration factors.
Object-oriented systems provide a way of creating integrated, non-hierarchical real-time enterprise systems. However, object-oriented systems are often limited for practicality to modeling a small number of relatively independent object types interacting in well defined ways. The design of large-scale applications having many hundreds of different type objects is a complex undertaking.
A common strategy for implementing a real-time system is through a hierarchical architecture, where the system is separated into control, supervisory and management layers. The control layer is generally hard real-time in nature, whereas the supervisory and management layers may have decreasing needs for strict guarantee of time, and in many cases are implemented in software.
Supervisory Control and Data Acquisition (SCADA) is an example of the hierarchical real-time computer architecture such as described above. SCADA has been widely used since the early 1960""s in areas such as process control and power systems management. FIG. 1 shows a typical software structure of a SCADA System.
SCADA systems are increasingly being implemented using the client-server model, in which the centralized database stores real time data and acts as a server to graphical user interface clients. Information is transferred from the control network to the real-time database through an input/output server.
In conventional SCADA systems, the real time data is captured from external sensors, control devices, or applications, and is logged to a centralized database. In response, controls on workstations are executed to manage the remote devices. All actions are performed from a centralized location. Basic control functions include alarm, trend, scan, and status operations.
One problem with conventional SCADA systems is that they are completely centralized. In a client-server system, all of the remote data information is loaded up into the central database, and then remote clients access the system. A problem with this design is degraded performance due to the single point of access, as many remote clients attempt to access the real time data through the single database server. This conventional design thus induces a scalability problem which limits the number of concurrent users.
One solution then is to use multiple real time databases, which partition the data being gathered according to geographic, management, or functional criteria. The problem here is configuration management. Traditionally, configuration is done by mapping input and output points to the database fields. If there are multiple databases, then the system designer has to change the mapping of the remote sensors to the databases, and maintain these mappings over a large number of remote devices and databases. Changes in partitioning of data induce further configuration maintenance. In addition, multiple, partitioned databases make it very difficult to introduce new types of data into the database configuration, and provide for new mappings.
In a traditional SCADA systems, the application components which manage the underlying control devices is not integrated with other legacy or enterprise applications. For example, a card access system is a typical SCADA system that would be used in a business to monitor and track employee building access; separately, the business may have human resource and payroll applications that are supported as enterprise systems, and which would desirably use the data generated by the card access system. However, conventional SCADA systems do not typically provide this direct integration path because the data that comes from the SCADA system""s control network is either in digital IO or analogue form and so not directly readable by the types of entities in the enterprise application, which generally operate with higher level data types. In other words, the data in the SCADA system is very low level, and the interpretation of such data is at a high level in the management layer. In an enterprise system by contrast, the data entities themselves are already at a higher level of abstraction, and the application""s functional components are not suited to process low level digital or analogue data from the SCADA system. Where the enterprise system is object-oriented, there is a further need to integrate the enterprise system into the SCADA applications which may not in themselves be object-oriented. Integration of non-object oriented applications into an object-oriented system becomes a particular problem when dealing with real-time applications.
Finally, in a conventional SCADA system, there is integration of a large number of control devices through a number of diverse control networks. For example, there may be a security, a fire alarm, heating, cooling, electrical, and elevator control systems. Each of these network may have a different protocol for describing and managing data produced by underlying control devices, and thus are not designed inter-operate with each other. Data which is generated by one application cannot be understood or processed by another application. This makes it difficult to integrate the storage and processing of data into a single, logical model of the enterprise or facility. Accordingly, there is typically a different gateway for each network that interfaces with these control networks and translates from the different protocols into a single database.
The present invention overcomes the limitations of conventional supervisory control and data acquisitions systems by providing an object-oriented framework for the development of personalized workflow applications that provide real time SCADA functionality, while maintain scalability to any number of users, and integration with existing legacy applications and systems.
In one embodiment, the present invention provides a computer implemented supervisory control and data acquisition system for managing distributed field devices that control or monitor physical or logical entities, and for providing users the ability to construct personalized SCADA applications (or workflows). In this embodiment, there is provided at least one virtual application service framework, and at least one personal application framework. These frameworks provide the functional objects and features with which the personalized SCADA applications can be built.
Each virtual application service framework includes three elements, a communications gateway, an object server, and an application cell base. The communications gateway is communicatively coupled to selected ones of the field devices to receive real time data from the field devices. This real time data is received in a format according to a communications protocol associated with the field devices; various different field devices may have different, non-compatible, proprietary formats. The communications gateway converts the real time data by reformatting it into standardized data format that is independent of the original format used by the field devices. The standardized data format specifies for each item of real time data a content and source of the real time data. In this manner, data from many different field devices, having different original source formats is converted into a single, standard data format. Preferably, each virtual application service and its communications gateway services one type of field device or control network; thus, where there are many different types of field devices that are being managed, multiple virtual application services are instantiated.
The application cell base is used to instantiate a variety of different types of application cells. An application cell is a cell which communicates data between the communications gateway and the object server to update data objects within the object server, or to provide current updates values from the object server to field devices supported by the communication gateway. Each application cell is coupled to the communications gateway to receive the reformatted real time data for at least one of the field devices and to apply to this data an inferencing or mapping operation to produce a derived real time data. For example, an application cell may average the inputs from a number of temperature sensors in a liquid reservoir to provide an overall average temperature. Or an application cell may provide a calibration function, which maps the received data from one range of values (e.g. fluid level in a tank) to a second range of value (e.g. fluid volume in the tank). In this manner the application cells provide a higher level of abstraction from the originally received data.
The object server is the data repository by which information is communicated between the virtual application service and the personal agent frameworks. The object server of the virtual application service is communicatively coupled to the application cells and receives from them derived real time data, and stores this data in a plurality of data objects. Each data object in the object server has various logical attributes which correspond to attributes of individual field devices, or collections of field devices. In this manner, the object server organizes what was originally completely disaggregated and logically unrelated data from many different field devices into a consistent representation that corresponds to the system being modeled.
For example, in a building management system, the raw, real time data from the field devices will be for many different types of field devices, such as lights, heating units, thermostats, window controls, ventilation systems, elevator banks, and so forth. As received by the communications gateway, the data from the many different field devices is very low level, and disaggregated in the sense that the communications gateway has no knowledge that relates data from different field devices (e.g. readings from different temperature sensors in the same tank). At the object server, however, this data can be organized in a logical manner, such as an abstraction for each floor of the building, within each floor, a number of rooms, and within each room controls for lights, temperature, window position, and so forth. The organization of the data (e.g. organization by floor, room, and type of control) is not present in the original real time data received by the communications gateway, but rather, is provided by the object server. While the object server provides for the correct logical organization, the application cells provide for the desired meaningful values of the data within this organization. The functionality of the application cells may be provided in a number of default application cell types or defined by the system administrator. Likewise, the organization of the object server is defined by the system administrator to be represent the real world system being managed.
The construction of personalized SCADA applications occurs within the context of the personal agent framework. Generally, each virtual application service may execute on a central host computer which acts as a server to remote computers executing personal agents of individual system users, though certainly the applications may be created by a systems administrator and preloaded unto the remote computers for use by others. Each personal agent framework includes a number of personal agents, and a number of service agents. Personal agents provide the presentation (via a graphical representation) of the underlying field devices being managed by the personalized SCADA application. Service agents couple the personal agents to the particular instances the object servers containing the data of such field devices. In this manner, each personal agent subscribes to data published by the object server.
Each personal agent including a plurality of presentation cells. A presentation cell is a cell which provides a graphical representation of some attribute or state of a field device, and that is dynamically responsive to real time changes in the attributes of the field device. For example, a presentation cell may graphically represent a temperature gauge as a bar graph, dial, or simple numerical value. Each presentation agent receives input data from a service agent, and maps that input data to its output graphical representation. The presentation cells thereby allow the user to visually monitor and control any number of field devices directly from their remote computers, while having assurance of real time quality of service.
As stated, the presentation agents each receive data from a service agent. A service agent is an entity which communicates between the object server and presentation cells to update the presentation cells with real time data (monitoring operation), or to take user inputs to the presentation cell, and pass them to the object server to update a data object therein, and thereby cause a change in the state of a field device (control operation). Each service agent represents an instance of a virtual application service, and is communicatively coupled to the object server of such virtual application service to receive derived real time data of a data object in response to the data object being updated by an application cell in the virtual application service. Each service agent is communicatively coupled any number of presentation cells within one or more personal agents to provide the updated data in the object server to the appropriate presentation cells.
The present invention provides a number of distinct advantages in creating enterprise wide real time management systems, and particularly for the creation of personalized supervisory and control data acquisition systems. First, the present invention provides for scalability to allow for large number of users, without bottlenecking at a host computer and the performance degradation typically associated with centralized data server. This feature of the present invention is provided by the replication of the object server and service agent in each of the personal agent frameworks which subscribes to data objects of the object server.
Second, the present invention provides for the complete integration of disparate control networks, field devices, and applications, regardless of differences in communication protocol or native data format. This feature of the present invention is provided by the ability of the object server to support a single object model for any and all types of data used by the different applications and system being integrated. More particularly, the object server enables a system administrator to define within a single, logical framework, any rich and complex hierarchy of different types of data used by different applications. For example, a single object server may store data object representative of physical systems, such as water valves, thermostats, elevator banks, and the like, and personnel data such as employees, dependents, wages, departments, managers, and so forth, thereby providing a single data repository for both physical control applications used in a SCADA application, and legacy applications, such payroll applications and human resource applications.
A third feature of the present invention is the ability to create personalized workflows for any managing any type of workflow or information management concern. This feature of the present invention is provided by the personal agents and service agents. These agents make available directly to the user a graphical environment for creating complex, personalized workflows. This approach is different from the traditional SCADA systems, where the control of the underlying field device and application is centralized. Instead, the present invention enables each end user to define and operate from any remote location, a personalized SCADA application specific to that user. This makes the personalized SCADA application fully distributed, as they execute on various remote computers, but with shared, real time accurate data stored in universally accessible object servers.
Another feature of the present invention is the use of consistent level of abstraction by which non-object-oriented applications can be integrated into a real-time, enterprise-wide object-oriented system. This feature of the present invention is provided by the single, integrated object model supported by the object server, and by the interfacing of non-object oriented applications via application cells. The single object model provides for common data storage of information from both object oriented, and non-object oriented applications. The interface to non-object oriented application is then provided by the application cells, which are programmer defined hold the application programming interface to some functional entity of a non-object application. The system developer defines the application cell to include the interface to the underlying enterprise, and exposes controls and presentation of such entities in the personal agent framework via presentation cells.
Accordingly, the present invention represents a substantial improvement over existing approaches for implementing real-time object-oriented systems.